import axios from 'axios'
import { ElMessage } from 'element-plus'

// 基础配置
const baseConfig = {
  // 基础路径
  baseURL: import.meta.env.VITE_SERVER,
  // 超时时间
  timeout: 60000,
  headers: { 'Content-Type': 'application/json;charset=UTF-8' }
}

// 创建请求实例
const http = axios.create(baseConfig)

// 添加请求拦截器
http.interceptors.request.use((config) => {
  // 待补充
  // 必须返回config配置对象
  return config
})

// 添加响应拦截器
http.interceptors.response.use(
  response => {
    // 成功回调
    // 这里可以扩充功能，例如请求时统一添加遮罩效果，显示后端提示信息等
    return response.data
  },
  error => {
    // 失败回调

    // 获取HTTP状态码
    // const status = error.response.status

    // 获取提示信息
    const msg = error.response.data.msg ? error.response.data.msg : '服务器错误，请稍后再试！'
		ElMessage.error(msg)
		return Promise.reject(error)
  }
)
//对外暴露
export default http
